Information cursors

ABSTRACT

Information cursors are provided for use in an operating system and/or application programs. Each information cursor includes a pointing portion to point to objects displayed on a video display and an information portion to display information about an object to which the pointing portion points. The information displayed in an information cursor may include the name of the object, a preview of the contents of the object, or property information about the object.

CROSS-REFERENCE TO RELATED APPLICATION

[0001] This application is a continuation of pending U.S. patentapplication Ser. No. 08/329,724, filed Oct. 26, 1994, which in turn is acontinuation of U.S. patent application Ser. No. 08/054,564, filed Apr.28, 1993, now abandoned.

TECHNICAL FIELD

[0002] The present invention relates generally to data processingsystems and, more particularly, to information cursors for use on videodisplays of data processing systems.

BACKGROUND OF THE INVENTION

[0003] Many operating systems provide a cursor that indicates a currentposition on a video display. The cursor is generally manipulable by aninput device, such as a keyboard or a mouse. In certain operatingsystems, such as the Microsoft WINDOWS, version 3.1, operating system,which is sold by Microsoft Corporation of Redmond, Wash., a window mayhave a status bar that displays information about the object to whichthe cursor is currently pointing. As the cursor is moved to point atdifferent objects, the contents of the status bar changes accordingly.The status bar is a separate graphic entity that is not connected to thecursor and does not move with the cursor. The status bar is positionedon the video display at a fixed location within a window. As such, auser has to look at two separate portions of the screen if he wishes toview both the cursor and the status bar. This separation of the statusbar from the cursor can be confusing and burdensome to the user.

SUMMARY OF THE INVENTION

[0004] In accordance with a first aspect of the present invention, amethod is practiced in a data processing system having a video displayand an input device. In this method, objects, including an informationcursor, are displayed on a video display. The cursor is positioned overat least a portion of one of the objects that is displayed in responseto a user using the input device. Information about the object which atleast a portion of the cursor is over is displayed on the video display.

[0005] The information that is displayed as part of the cursor mayinclude a name of the object, a preview of the contents of the object,or property information about the object. The property information mayinclude help information regarding the object. Furthermore, the inputdevice may be a mouse that is used to position the cursor.

[0006] The information cursor may be displayed as having a pointingportion for pointing to objects on the video display and an informationportion for displaying information about the object. The informationcursor may be specified as “On” or “Off”. When the information cursor isspecified as “On”, information about the object is displayed as part ofthe cursor. However, when the information cursor is specified as “Off”,such information is not displayed as part of the cursor.

[0007] In accordance with another aspect of the present invention, acursor, a source-object icon for a source object, and adestination-object icon for a destination object are displayed on avideo display. The cursor is moved to point to the source object icon inresponse to movements of a mouse by a user. A name of the source objectis displayed as part of the cursor on the video display. In response tothe user depressing the button of the mouse while the cursor points tothe source-object icon and moving the mouse while keeping the buttondepressed, the source-object icon is dragged over the video display towhere the destination-object icon is positioned. The cursor then pointsto the destination object icon and the name of the destination object isdisplayed along with the name of the source object as part of thecursor.

[0008] In accordance with still another aspect of the present invention,a method is practiced wherein a pointing portion of an informationcursor is displayed on the video display. The pointing portion points toan icon associated with an object. Information about the object that isassociated with the icon to which the pointing portion points isdisplayed as part of the information cursor.

[0009] In accordance with a further aspect of the present invention, adata processing system includes a video display and an input device thatis operable by a user to communicate with the data processing system.The data processing system includes a means for producing a userinterface on the video display and a means for displaying objects on theuser interface. The data processing system further includes a means fordisplaying a cursor and for moving the cursor in response to a useroperating the input device. The cursor has an indicator portion andinformation display portion. The indicator portion indicates a userselected one of the objects that is displayed on the user interface. Inaddition, the data processing system includes a means for displayinginformation in the information display portion of the cursor regardingthe object that is indicated by the indicator portion of the cursor.

[0010] The means for displaying information may include a means fordisplaying a name of the object, a means for displaying a preview of theobject, or a means for displaying property information about the object.Still further, the data processing system may include a means forturning “On” or “Off” the cursor such that when the cursor is turned“Off”, the means for displaying information is deactivated.

BRIEF DESCRIPTION OF THE DRAWINGS

[0011]FIG. 1 is a block diagram of a data processing system forpracticing a preferred embodiment of the present invention.

[0012]FIGS. 2a, 2 b and 2 c each contain a diagram showing an example ofa name cursor generated in accordance with the preferred embodiment ofthe present invention.

[0013]FIG. 3 is a diagram showing an example of a preview cursorgenerated in accordance with the preferred embodiment of the presentinvention.

[0014]FIG. 4 is a diagram showing an example of combined name andpreview cursor generated in accordance with the preferred embodiment ofthe present invention.

[0015]FIG. 5 is a diagram showing an example of property cursorgenerated in accordance with the preferred embodiment of the presentinvention.

[0016]FIG. 6 is a flowchart showing the steps performed to implement theinformation cursors of the preferred embodiment of present invention.

[0017]FIG. 7 is a flowchart illustrating in more detail how informationabout an object is displayed in an information cursor generated inaccordance with the preferred embodiment of the present invention.

[0018]FIG. 8 is a flowchart illustrating the steps performed by thepreferred embodiment of the present invention in displaying a namecursor in a drag and drop operation.

DETAILED DESCRIPTION OF THE INVENTION

[0019] The present invention provides “information cursors” whichdisplay graphical or textual information about an object to which thecursor points. Each information cursor has two portions: a pointingportion and an information portion. The pointing portion points to aposition on a video display. The information portion displays textual orgraphical information about the object to which the pointing portionpoints. Information cursors are made available by an operating system toapplications that are run on the operating system. Information cursorsare available in a number of different varieties. Four varieties ofinformation cursors are provided by the preferred embodiment. The fourvarieties of information cursors are name cursors, preview cursors,combined name and preview cursors and property cursors. The four typesof information cursors are described in more detail below.

[0020]FIG. 1 is a block diagram of a data processing system 10 that issuitable for practicing the preferred embodiment of the presentinvention. The data processing system 10 includes a central processingunit (CPU) 12 that oversees operation of the system. The data processingsystem 10 also includes a memory 14, a keyboard 16, a mouse 18, and avideo display 20. The memory 14 may include different types of storage,such as RAM, ROM, or disk storage. The memory 14 holds a copy of anoperating system 22. A mouse driver 24 is provided within the operatingsystem 22 to drive the mouse 18.

[0021] Before discussing the implementation details of the informationcursors in the preferred embodiment of the present invention, it ishelpful to further examine the different varieties of informationcursors that are provided by the preferred embodiment. FIG. 2a shows anexample of a name cursor 26 displayed on the video display 20. Namecursor 26 includes a pointing portion 28 (i.e., a conventional pointingcursor) and a name box 30. The name box 30 displays the name of theobject to which the pointing portion 28 points.

[0022]FIG. 2b shows an example of how the name cursor 26 is used.Suppose that a book icon 32, representing a book of text stored in thesystem 10 (FIG. 1), is displayed on the video display 20. When thepointing portion 28 of the name cursor 26 points to the book icon 32,the name box 30 of the name cursor displays the phrase “Book Cover”.More generally, the name box 30 displays the name of the item to whichthe pointing portion 28 points. The user interface may be programmedsuch that, when the pointing portion 28 points to nothing ofsignificance, the name box 30 remains blank. Alternatively, the userinterface may be programmed so that the name box 30 disappears in suchan instance.

[0023] In some circumstances, the name cursor 26 may include two nameboxes 30 a and 30 b, such as shown in FIG. 2c. For instance, in anoperating system that supports drag and drop operations, two names maybe displayed in the name cursor 26 during a drag and drop operation. Inparticular, the name of the source object and the name of the targetobject are shown in name boxes 30 a and 30 b, respectively. The targetobject name is not shown until the pointing portion 28 of the namecursor 26 is moved to point to the target object. A source object icon33 for the source object is dragged along with the cursor during thedrag portion of the operation.

[0024]FIG. 3 shows an example of a preview cursor 34, which includes apreview portion 36 and the same pointing portion 28 as the name cursor26. The preview cursor 34 provides a preview of the contents of theobject to which the cursor points. In the example shown in FIG. 3, thepreview cursor 34 points to the book icon 32 displayed on the videodisplay 20. The preview portion 36 holds graphical data depicting apreview of the contents of the object (i.e., the book icon 32) to whichthe pointing portion 28 points. In the example of FIG. 3, the bookconcerns chess, and the preview portion 36 shows a graphical scene ofchess pieces flying through the air.

[0025] The name cursor 26 (FIGS. 2a, 2 b and 2 c) and the preview cursor34 (FIG. 3) may be combined into a combined name and preview cursor 38,as shown in FIG. 4. The combined name and preview cursor 38 includesthree components. First, the preview cursor 38 includes a pointingportion 28 for pointing to an object on the video display 20, at leastone name box 30 (two name boxes are used with a drag and drop operation,in a fashion analogous to that described above for the name cursor) fordisplaying the name of the object to which the pointing portion pointsand a preview portion 36 for holding a preview of the contents of theobject to which the pointing portion points. In the example illustratedin FIG. 4, the name box 30 displays the phrase “Book Cover”, whereas thepreview portion 36 displays the graphic of chess pieces flying throughthe air.

[0026] An additional variety of information cursor that is provided bythe preferred embodiment of the present invention is a property cursor40, such as shown in FIG. 5. A property cursor 40 includes the pointingportion 28 and a property box 42. The property box 40 displays propertyinformation (often including the name of the object) regarding theobject to which the pointer portion 28 points. In the example of FIG. 5,the property cursor 40 serves as a help cursor that displays helpinformation in the property box 42 for the object to which the pointingportion 28 points. In FIG. 5, the pointer portion 28 points to amaximize button 44. The text in the property box 42 identifies thenature of the maximize button 44 to which the pointer portion 28 pointsand displays relevant help information regarding this object.

[0027] The implementation of the preferred embodiment of the presentinvention will now be described with reference to the Microsoft WINDOWS,version 3.1, operating system. In particular, the operating system 22 isan embellished version of the Microsoft WINDOWS, version 3.1, operatingsystem that supports the use of information cursors. The presentinvention is not limited to implementations with this operating system;rather, those skilled in the art will appreciate that the presentinvention may be implemented with other operating systems as well.

[0028] In explaining the implementation of the preferred embodiment ofthe present invention, it is helpful to consider the type of inputdevice that is used. In the discussion that follows, it is assumed thatthe mouse 18 (FIG. 1) is used as the input device for manipulating theposition of the cursor on the video display 20. It should, nevertheless,be appreciated that the present invention is not limited to the use of amouse as the input device; rather, other input devices, such as akeyboard or a pointing device, may alternatively be used.

[0029] The operating system 22 (FIG. 1) logically divides the userinterface into a number of windows. In general, each window has aseparate window procedure associated with it. The operating system 22maintains a message queue for each program that generates windows. As aprogram may generate multiple windows, the message queue may holdmessages for multiple windows. When an event occurs, the event istranslated into a message that is put into the message queue for theprogram. The program retrieves and delivers the message to the properwindow procedure by executing a block of code known, as the “messageloop”. The window procedure that received the message then processes themessage.

[0030] When a user positions a cursor with the mouse 18 over a window orclicks the mouse by depressing one of the mouse buttons within thewindow, the procedure for the window receives a mouse message. Theoperating system 22 provides a number of predefined mouse messages. Themouse messages specify the status of mouse buttons and the position ofthe cursor within the window. The position of the cursor within thewindow is specified in (X, Y) coordinates relative to the upperleft-hand cover of the window. The window procedure receives the mousemessage and utilizes the information contained in the message to respondto the mouse activities. A new mouse message need not be generated forevery single pixel position change of a mouse within a window; rather, amessage may be generated each time the mouse moves more than a thresholdnumber of pixels transversed by the mouse.

[0031] This message system plays a role in the implementation ofinformation cursors described above. The appearance of the cursors onthe video display 20 (FIG. 1) is dictated by bitmaps stored within theoperating system 22. The role that the message loop serves in theimplementation of the information cursors can be seen in the flowchartof FIG. 6, which illustrates the steps performed by the system 10(FIG. 1) when the cursor moves into a window that is displayed on thevideo display 20. Initially, the cursor position is moved by the mouse18 or other input device to point within the window (step 48 in FIG. 6).A message is generated and sent to the application program that isexecuting, which, in turn, forwards the message to the window procedureassociated with the window (step 50). The message specifies the positionof the cursor in the window as described above. The window procedurethen determines what is displayed at the cursor position within thewindow (step 52). For instance, an object may be at the specifiedposition or nothing of particular importance may be at the specifiedposition. A determination is made whether the specified positioncorresponds to the position of an object with an identity (step 54). Inother words, a determination is made whether a named entity is presentat the specified cursor position. If a named entity is present at thespecified cursor position, the information regarding the object at thespecified cursor position is displayed in the information cursor (step56 ). If, however, a named entity is not present at the specified cursorposition, either a conventional cursor is displayed or the informationcontaining portion (e.g., name box 30, preview portion 36 or propertybox 40) of the information cursor is shown in blank (step 57). Thechoice between these options is controlled by the application program.

[0032]FIG. 7 is a flowchart showing in more detail the steps that mustbe performed in order to realize step 56 of FIG. 6. After the windowprocedure has determined what is at the specified cursor position, theprocedure passes a message to the operating system 22 (FIG. 1) thattells the operating system what type of cursor to display and sets forththe contents and type of information to be displayed in the cursor (step58 in FIG. 7). Suppose that the application program desires to display aname cursor 26 (FIG. 2a). A message requesting that a name cursor bedisplayed is passed to the operating system 22 along with a text stringfor the name to be displayed in the name box 30. However, if the cursorto be displayed is a preview cursor 34 (FIG. 3), a message specifyingthat a preview cursor is required is sent. The message includes apointer to a bitmap of graphical information that the operating system22 should use in the preview portion 36. Still further, a propertycursor 46 may be requested in the message. The message, in such a case,includes a text string for the text of property information to bedisplayed in the property box 42.

[0033] Whether the information cursor is displayed depends upon whetherthe information cursor is designated as “On” or “Off”. The operatingsystem checks whether the information cursor is “On” (step 60). Incertain instances, the user may have the option of specifying whetherthe information cursor is “On” or “Off”. Alternatively, the informationcursors may be programmed by the application program or operating system22 (FIG. 1) such that they are automatically turned “On” when theconventional cursor points to a named entity. This latter optionprovides an automatic mechanism for switching “On” or “Off” theinformation cursor. If the information cursor is not “On”, aconventional cursor is displayed (step 64). As an example, consider thename cursor 26. If the name cursor 26 is “Off”, the name box 30 is notdisplayed (FIG. 2a). Instead, a conventional cursor is displayed. On theother hand, if the name cursor is “On”, the pointing portion 28 isdisplayed along with the appropriate name information (step 62) to beused in the name box.

[0034] The name cursor 26 (FIG. 2c) that is shown during a drag and dropoperation is somewhat unique relative to the other types of informationcursors. FIG. 8 is a flowchart showing the steps performed by thepreferred embodiment of the present invention to display the name cursor26 during a drag and drop operation. The generation of messages from themouse 18 and the response of window procedures are the same as describedabove for the single-name name cursor. In step 66, the pointing portion28 of the name cursor points to a source object, and the name of thesource object is displayed in the first name box 30 a (see FIG. 2c),such as described above for the single-name-box name cursor of FIGS. 2aand 2 b. A user then depresses the mouse button while the pointingportion 28 of the name cursor points to the source-object icon (step 68)and drags the source-object icon by moving the mouse and keeping thebutton depressed (step 70) until the source-object icon is positionedover a destination-object icon.

[0035] The system performs a loop while the source-object icon is beingdragged. In particular, the system checks whether the pointing portion28 of the name cursor is positioned over a destination object (step 72).If not, a blank is displayed for the destination object name in thesecond name box 30 b. The system checks whether the mouse is released(step 76). If not, the drag continues (step 70). When the pointingportion is positioned over a destination object, the name of thedestination object is then displayed in the second name box 30 b (seeFIG. 2c) of the name cursor 36 (step 72 of FIG. 8). The loop continuesuntil the mouse button is released to terminate the drag and dropoperation.

[0036] While the present invention has been described with reference toa preferred embodiment thereof, those skilled in the art will appreciatethat various changes and form of the detail may be made withoutdeparting from the scope of the present invention as defined by theappended claims.

1. In a data processing system having a video display and an inputdevice, a method, comprising the steps of: (a) displaying objects on thevideo display, said objects including an information cursor with apointing portion for pointing to locations on the video display and aninformation portion for displaying information; (b) in response to auser using the input device, positioning the information cursor so thatthe pointing portion of the information cursor points to one of theobjects that is displayed; and (c) displaying currently undisplayedinformation on the video display about the object to which the pointingportion of the information cursor points in the information portion ofthe information cursor.
 2. The method as recited in claim 1 wherein thestep of displaying currently undisplayed information on the videodisplay further comprises the step of displaying a name of the object towhich the pointing portion of the information cursor points.
 3. Themethod as recited in claim 2 wherein the step of displaying currentlyundisplayed information on the video display in the information portionof the information cursor further comprises the step of displaying apreview of contents of the object to which the pointing portion of theinformation cursor points in the information portion of the informationcursor.
 4. The method as recited in claim 1 wherein the step ofdisplaying currently undisplayed information on the video display in theinformation portion of the information cursor further comprises the stepof displaying a preview of contents of the object in the informationportion of the information cursor to which the pointing portion of theinformation cursor points.
 5. The method as recited in claim 1 whereinthe step of displaying currently undisplayed information on the videodisplay further comprises the step of displaying property information inthe information portion of the information cursor about the object towhich the pointing portion of the information cursor points.
 6. Themethod as recited in claim 5 wherein the step of displaying propertyinformation further comprises the step of displaying help information inthe information portion of the cursor regarding the object to which thepointing portion of the information cursor points.
 7. The method asrecited in claim 1 wherein the input device is a mouse and the step ofpositioning the cursor further comprises the steps of tracking movementsof the mouse by the user and updating a position of the cursor on thevideo display.
 8. The method as recited in claim 1, further comprisingthe step of determining what information is associated with the objectto which the pointing portion of the information cursor points.
 9. Themethod as recited in claim 1 wherein the step of displaying currentlyundisplayed information on the video display further comprises the stepsof: (i) determining whether the information cursor is specified as “On”;and (ii) in response to determining whether the information cursor isspecified as “On”, displaying currently undisplayed information on thevideo display about the object to which the pointing portion of theinformation cursor points when the information cursor is specified as“On”.
 10. In a data processing system having a mouse, having at leastone button, and a video display, a method comprising the steps of: (a)displaying a cursor, a source-object icon for a source object and adestination-object icon for a destination object on the video display;(b) in response to movements of the mouse by a user, moving the cursorto point to the source-object icon; (c) displaying on the video displaya name of the source object as part of the cursor; (d) in response tothe user depressing the button of the mouse while the cursor points tothe source object icon and moving the mouse while keeping the buttondepressed, dragging the source-object icon over the video display towhere the destination-object icon is positioned so that the cursorpoints to the destination-object icon; and (e) displaying a name of thedestination object along with the name of the source object as part ofthe cursor.
 11. In a data processing system having at least oneprocessor and a video display, a method comprising the steps of: (a)displaying a pointing portion of an information cursor on the videodisplay, said pointing portion pointing to an icon associated with anobject; and (b) displaying currently undisplayed information about theobject associated with the icon to which the pointing portion of theinformation cursor points as part of the information cursor.
 12. A dataprocessing system, comprising: (a) a video display; (b) an input deviceoperable by a user to communicate with the data processing system; (c)means for producing a user interface on the video display; (d) means fordisplaying objects on the user interface; (e) means for displaying acursor, having an indicator portion and an information display portion,so that the indicator portion indicates a user selected one of theobjects displayed on the user interface; and (f) means for displayingcurrently undisplayed information regarding the object indicated by theindicator portion of the cursor in the information display portion ofthe cursor.
 13. The data processing system as recited in claim 12wherein the input device is a mouse.
 14. The data processing system asrecited in claim 12 wherein the input device is a keyboard.
 15. The dataprocessing system of claim 12 wherein the means for displaying currentlyundisplayed information further comprises means for displaying a name ofthe object indicated by the indicator portion of the cursor in theinformation display portion of the cursor.
 16. The data processingsystem of claim 12 wherein the means for displaying currentlyundisplayed information further comprises means for displaying a previewof contents of the object indicated by the indicator portion of thecursor in the information display portion of the cursor.
 17. The dataprocessing system of claim 12 wherein the means for displaying currentlyundisplayed information further comprises means for displaying propertyinformation about the object indicated by the indicator portion of thecursor in the information display portion of the cursor.
 18. The dataprocessing system of claim 12, further comprising means for turning “On”or “Off” the cursor such that when the cursor is turned “Off”, the meansfor displaying currently undisplayed information is deactivated.